﻿#ifndef GENERATEPARENTHESIS_H_
#define GENERATEPARENTHESIS_H_

namespace algorithm {
    /**
     * @brief 数字 n 代表生成括号的对数，请你设计一个函数，用于能够生成所有可能的并且 有效的 括号组合.
     * https://leetcode.cn/problems/generate-parentheses/description/
     */
    class CGenerateParenthesis
    {
    public:
        static std::vector<std::string> Generate(int n);

    private:
        static void RecurseGenerate(std::stack<int>& cache, bool bLeft, int left, int right, std::string& str, std::vector<std::string>& vec);
    };
}

#endif //!GENERATEPARENTHESIS_H_
